Applications on a computing device often use a network connection to transmit data to and to receive data from other computing devices. For example, an internet browser, which is installed on a computing device connected to the internet via a local area network (“LAN”), may send a request to a remote server for a web page. The remote server can respond to the request by transmitting data associated with the web page to the computing device, fulfilling the internet browser's request. A network connection between computing devices can be established by opening network sockets that create channels over available network connections for bilateral communication of data between the computing devices.
In another example, mobile computing devices, such as smartphones, often run software applications that use network connections to send data to and receive data from other computing devices. Mobile computing devices can transmit data over wireless network connections, such as an IEEE 802.11 WI-FI connection and/or through a public land mobile network (“PLMN”) that uses cellular radiotelephone network standards such as the Enhanced Data GSM Environment (“EDGE”), Code Division Multiple Access (“CDMA”), and/or Long Term Evolution (“LTE”). A mobile computing device can establish a network connection that is usable by one or more applications by opening a socket for bilateral communication of data between an application and another computing device. Once a socket is open and a network connection is established, transmission of data between a mobile computing device and another computing device can commence.